"""Definition of the InfoMunicipio content type
"""

from zope.interface import implements, directlyProvides

from Products.Archetypes import atapi
from Products.ATContentTypes.content import base
from Products.ATContentTypes.content import schemata

from newguegue.newmunicipios import newmunicipiosMessageFactory as _
from newguegue.newmunicipios.interfaces import IInfoMunicipio
from newguegue.newmunicipios.config import PROJECTNAME

InfoMunicipioSchema = schemata.ATContentTypeSchema.copy() + atapi.Schema((

    # -*- Your Archetypes field definitions here ... -*-
   atapi.StringField('title',
                searchable=1,
                isMetadata=0,
                accessor='Title',
                widget=atapi.StringWidget(label='Titulo',
                                      maxlength=150,
                                      size=30,
                                      label_msgid="label_entry_title",
                                      description_msgid="help_entry_title",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='')),
    atapi.StringField('description',
                searchable=1,
                isMetadata=0,
                accessor='Description',
                widget=atapi.TextAreaWidget(label='Breve descripción',
                                      label_msgid="label_entry_description",
                                      description_msgid="help_entry_description",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='Entre una breve descripción')),
    atapi.TextField('origen',
                searchable=0,
                isMetadata=0,
           	default_content_type='text/html',
              	default_output_type='text/html',
              	allowable_content_types=('text/plain','text/structured', 'text/html', 'text/restructured'),
              	widget=atapi.RichWidget(label='Origen y significado del municipio',
                                label_msgid="label_entry_origen",
                                description_msgid="help_entry_origen",
                                i18n_domain="newguegue.newmunicipios",
                                description="")),
    atapi.StringField('gentilicio',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Gentilicio',
                                      label_msgid="label_entry_gentilicio",
                                      description_msgid="help_entry_gentilicio",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='Gentilicio')),
    atapi.StringField('otrosnombres',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Otros nombres',
                                      label_msgid="label_entry_otrosnombres",
                                      description_msgid="help_entry_otrosnombres",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='')),
    atapi.StringField('fundacion',
                searchable=0,
                required=0,
                widget=atapi.StringWidget(label='Fecha de fundación',
                                      label_msgid="label_entry_fundacion",
                                      description_msgid="help_entry_fundacion",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='Fecha')),
    atapi.StringField('cabecera',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Cabecera departamental',
                                      label_msgid="label_entry_cabecera",
                                      description_msgid="help_entry_cabecera",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='')),
    atapi.StringField('distancia',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Distancia del Municipio a la capital de Managua',
                                      label_msgid="label_entry_distancia",
                                      description_msgid="help_entry_distancia",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='Distancia del municipio de la capital de Managua')),
    atapi.StringField('distancia2',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Distancia del Municipio a la cabecera departamental',
                                      label_msgid="label_entry_distancia2",
                                      description_msgid="help_entry_distancia2",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='Distancia del Municipio a la cabecera departamental')),
    atapi.StringField('posicion',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Posición geográfica',
                                      size=50,
                                      label_msgid="label_entry_posicion",
                                      description_msgid="help_entry_posicion",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='')),
    atapi.StringField('extension',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Extensión territorial',
                                      label_msgid="label_entry_extension",
                                      description_msgid="help_entry_extension",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='')),
    atapi.StringField('poblacion',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Población urbana y rural %, densidad poblacional',
                                      label_msgid="label_entry_poblacion",
                                      description_msgid="help_entry_poblacion",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='')),
    atapi.StringField('limites',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Límites',
                                      size=50,
                                      label_msgid="label_entry_limites",
                                      description_msgid="help_entry_limites",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='Límites')),
    atapi.StringField('temperatura',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Temperatura media',
                                      label_msgid="label_entry_temperatura",
                                      description_msgid="help_entry_temperatura",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='')),
    atapi.StringField('clima',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Clima',
                                      size=50,
                                      label_msgid="label_entry_clima",
                                      description_msgid="help_entry_clima",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='clima')),
    atapi.StringField('religiones',
                searchable=0,
                isMetadata=0,
                widget=atapi.StringWidget(label='Religiones',
                                      size=50,
                                      label_msgid="label_entry_religiones",
                                      description_msgid="help_entry_religiones",
                                      i18n_domain="newguegue.newmunicipios",
                                      description='Religiones')),
    atapi.FileField('adjunto',
              searchable=0,
              required=0,
              widget=atapi.FileWidget(label='Archivo adjunto',
                                label_msgid="label_entry_adjunto",
                                description_msgid="help_entry_adjunto",
                                i18n_domain="newguegue.newmunicipios",
                                description='Puede adjuntar un archivo  relacionado.')),
))

# Set storage on fields copied from ATContentTypeSchema, making sure
# they work well with the python bridge properties.

#InfoMunicipioSchema['title'].storage = atapi.AnnotationStorage()
#InfoMunicipioSchema['description'].storage = atapi.AnnotationStorage()

schemata.finalizeATCTSchema(InfoMunicipioSchema, moveDiscussion=False)

class InfoMunicipio(base.ATCTContent):
    """Informacion para los municipios"""
    implements(IInfoMunicipio)

    portal_type = "InfoMunicipio"
    schema = InfoMunicipioSchema

 #   title = atapi.ATFieldProperty('title')
 #   description = atapi.ATFieldProperty('description')

atapi.registerType(InfoMunicipio, PROJECTNAME)
